package _01homework;

import java.util.Scanner;

public class Demo1 {
    public static void main(String[] args) {
        // 使用for循环遍历n以内(包括n)的奇数，并计算所有的奇数的和并输出。
        System.out.println("使用for循环遍历n以内(包括n)的奇数，并计算所有的奇数的和并输出。");
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入位数n:");
        int i = scanner.nextInt();
        int sum = getOddSum(i);
        System.out.println("基数和为：" + sum);
        System.out.println();

        // 打印倒三角形，并且行数（line）是可控制的。
        System.out.println("打印倒三角形，并且行数（line）是可控制的。");
        System.out.print("请输入位数n:");
        int lineNum = scanner.nextInt();
        invertTriangle(lineNum);
        System.out.println();

        //根据键盘录入打印nn乘法表，n是可变的。
        System.out.println("根据键盘录入打印nn乘法表，n是可变的。");
        System.out.print("请输入位数n:");
        int n = scanner.nextInt();
        int product = multiplicationTable(n);
        System.out.println("乘积为：" + product);
        System.out.println();

        // 键盘录入一个int数字，判断它是奇数还是偶数。
        System.out.println("键盘录入一个int数字，判断它是奇数还是偶数。");
        System.out.print("请输入数字num:");
        int num = scanner.nextInt();
        oddOrEven(num);
        System.out.println();

        // 根据键盘录入打印n行m列井号，n和m是可变的。
        System.out.println("根据键盘录入打印n行m列井号，n和m是可变的。");
        System.out.print("请输入行号n:");
        n = scanner.nextInt();
        System.out.print("请输入列号m:");
        int m = scanner.nextInt();
        printNM(n,m);
        System.out.println();

        // （扩展题）输出前n个数当中的所有素数，并统计个数。
        System.out.println("（扩展题）输出前n个数当中的所有素数，并统计个数。");
        System.out.print("请输入位数n:");
        n = scanner.nextInt();
        primeNum(n);
        System.out.println();
    }

    public static int getOddSum(int n) {
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            if (i % 2 == 1) {
                sum += i;
            }
        }
        return sum;
    }

    public static void invertTriangle(int n) {
        for (int i = 1; i <= n; i++) {
            for (int j = n; j >= i; j--) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    public static int multiplicationTable(int n){
        return n*n;
    }

    public static void oddOrEven(int num){
        if (num%2==0){
            System.out.println("该数为偶数");
        }else {
            System.out.println("该数为奇数");
        }
    }

    public static void printNM (int n,int m){
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                System.out.print("#");
            }
            System.out.println();
        }
    }

    public static void primeNum(int n){
        //暴力破解，用两个循环依次判断该数是否可被除自身之外的数整除
        for (int i = 2; i <= n; i++) {
            int count=0;
            for (int j = 2; j < i; j++) {
                if(i%j==0){
                    count++;
                    break;
                }
            }
            if (count==0){
                System.out.println(i);
            }
        }
    }
}
